home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QuickdrawText.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  10.1 KB  |  263 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QuickdrawText.p
  3.  
  4.      Contains:    Quickdraw Text Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1983-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QuickdrawText;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QUICKDRAWTEXT__}
  28. {$SETC __QUICKDRAWTEXT__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QuickdrawTextIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46. { new CGrafPort bottleneck ("newProc2") function, used in Unicode Text drawing }
  47. FUNCTION StandardGlyphs(dataStream: UNIV Ptr; size: ByteCount): OSStatus; C;
  48.  
  49.  
  50. CONST
  51.                                                                 {  CharToPixel directions  }
  52.     leftCaret                    = 0;                            { Place caret for left block }
  53.     rightCaret                    = -1;                            { Place caret for right block }
  54.     kHilite                        = 1;                            { Direction is SysDirection }
  55.     smLeftCaret                    = 0;                            { Place caret for left block - obsolete  }
  56.     smRightCaret                = -1;                            { Place caret for right block - obsolete  }
  57.     smHilite                    = 1;                            { Direction is TESysJust - obsolete  }
  58.  
  59.                                                                 { Constants for styleRunPosition argument in PortionLine, DrawJustified, MeasureJustified, CharToPixel, and PixelToChar. }
  60.     onlyStyleRun                = 0;                            {  This is the only style run on the line  }
  61.     leftStyleRun                = 1;                            {  This is leftmost of multiple style runs on the line  }
  62.     rightStyleRun                = 2;                            {  This is rightmost of multiple style runs on the line  }
  63.     middleStyleRun                = 3;                            {  There are multiple style runs on the line and this is neither the leftmost nor the rightmost.  }
  64.     smOnlyStyleRun                = 0;                            {  obsolete  }
  65.     smLeftStyleRun                = 1;                            {  obsolete  }
  66.     smRightStyleRun                = 2;                            {  obsolete  }
  67.     smMiddleStyleRun            = 3;                            {  obsolete  }
  68.  
  69. { type for styleRunPosition parameter in PixelToChar etc. }
  70.  
  71. TYPE
  72.     JustStyleCode                        = INTEGER;
  73.     FontInfoPtr = ^FontInfo;
  74.     FontInfo = RECORD
  75.         ascent:                    INTEGER;
  76.         descent:                INTEGER;
  77.         widMax:                    INTEGER;
  78.         leading:                INTEGER;
  79.     END;
  80.  
  81.     FormatOrder                            = ARRAY [0..0] OF INTEGER;
  82.     FormatOrderPtr                        = ^FormatOrder;
  83. { FormatStatus was moved to TextUtils.i }
  84.     OffPairPtr = ^OffPair;
  85.     OffPair = RECORD
  86.         offFirst:                INTEGER;
  87.         offSecond:                INTEGER;
  88.     END;
  89.  
  90.     OffsetTable                            = ARRAY [0..2] OF OffPair;
  91. {$IFC TYPED_FUNCTION_POINTERS}
  92.     StyleRunDirectionProcPtr = FUNCTION(styleRunIndex: INTEGER; dirParam: UNIV Ptr): BOOLEAN;
  93. {$ELSEC}
  94.     StyleRunDirectionProcPtr = ProcPtr;
  95. {$ENDC}
  96.  
  97.     StyleRunDirectionUPP = UniversalProcPtr;
  98.  
  99. CONST
  100.     uppStyleRunDirectionProcInfo = $00000390;
  101.  
  102. FUNCTION NewStyleRunDirectionProc(userRoutine: StyleRunDirectionProcPtr): StyleRunDirectionUPP;
  103.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  104.     INLINE $2E9F;
  105.     {$ENDC}
  106.  
  107. FUNCTION CallStyleRunDirectionProc(styleRunIndex: INTEGER; dirParam: UNIV Ptr; userRoutine: StyleRunDirectionUPP): BOOLEAN;
  108.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  109.     INLINE $205F, $4E90;
  110.     {$ENDC}
  111. FUNCTION Pixel2Char(textBuf: Ptr; textLen: INTEGER; slop: INTEGER; pixelWidth: INTEGER; VAR leadingEdge: BOOLEAN): INTEGER;
  112.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  113.     INLINE $2F3C, $820E, $0014, $A8B5;
  114.     {$ENDC}
  115. FUNCTION Char2Pixel(textBuf: Ptr; textLen: INTEGER; slop: INTEGER; offset: INTEGER; direction: INTEGER): INTEGER;
  116.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  117.     INLINE $2F3C, $820C, $0016, $A8B5;
  118.     {$ENDC}
  119. FUNCTION PixelToChar(textBuf: Ptr; textLength: LONGINT; slop: Fixed; pixelWidth: Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  120.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  121.     INLINE $2F3C, $8222, $002E, $A8B5;
  122.     {$ENDC}
  123. FUNCTION CharToPixel(textBuf: Ptr; textLength: LONGINT; slop: Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  124.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  125.     INLINE $2F3C, $821C, $0030, $A8B5;
  126.     {$ENDC}
  127. PROCEDURE DrawJustified(textPtr: Ptr; textLength: LONGINT; slop: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  128.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  129.     INLINE $2F3C, $8016, $0032, $A8B5;
  130.     {$ENDC}
  131. PROCEDURE MeasureJustified(textPtr: Ptr; textLength: LONGINT; slop: Fixed; charLocs: Ptr; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  132.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  133.     INLINE $2F3C, $801A, $0034, $A8B5;
  134.     {$ENDC}
  135. FUNCTION PortionLine(textPtr: Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Point; denom: Point): Fixed;
  136.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  137.     INLINE $2F3C, $8412, $0036, $A8B5;
  138.     {$ENDC}
  139. PROCEDURE HiliteText(textPtr: Ptr; textLength: INTEGER; firstOffset: INTEGER; secondOffset: INTEGER; VAR offsets: OffsetTable);
  140.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  141.     INLINE $2F3C, $800E, $001C, $A8B5;
  142.     {$ENDC}
  143. PROCEDURE DrawJust(textPtr: Ptr; textLength: INTEGER; slop: INTEGER);
  144.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  145.     INLINE $2F3C, $8008, $001E, $A8B5;
  146.     {$ENDC}
  147. PROCEDURE MeasureJust(textPtr: Ptr; textLength: INTEGER; slop: INTEGER; charLocs: Ptr);
  148.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  149.     INLINE $2F3C, $800C, $0020, $A8B5;
  150.     {$ENDC}
  151. FUNCTION PortionText(textPtr: Ptr; textLength: LONGINT): Fixed;
  152.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  153.     INLINE $2F3C, $8408, $0024, $A8B5;
  154.     {$ENDC}
  155. FUNCTION VisibleLength(textPtr: Ptr; textLength: LONGINT): LONGINT;
  156.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  157.     INLINE $2F3C, $8408, $0028, $A8B5;
  158.     {$ENDC}
  159. PROCEDURE GetFormatOrder(ordering: FormatOrderPtr; firstFormat: INTEGER; lastFormat: INTEGER; lineRight: BOOLEAN; rlDirProc: StyleRunDirectionUPP; dirParam: Ptr);
  160.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  161.     INLINE $2F3C, $8012, $FFFC, $A8B5;
  162.     {$ENDC}
  163.  
  164.  
  165. PROCEDURE TextFont(font: INTEGER);
  166.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  167.     INLINE $A887;
  168.     {$ENDC}
  169. PROCEDURE TextFace(face: StyleParameter);
  170.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  171.     INLINE $A888;
  172.     {$ENDC}
  173. PROCEDURE TextMode(mode: INTEGER);
  174.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  175.     INLINE $A889;
  176.     {$ENDC}
  177. PROCEDURE TextSize(size: INTEGER);
  178.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  179.     INLINE $A88A;
  180.     {$ENDC}
  181. PROCEDURE SpaceExtra(extra: Fixed);
  182.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  183.     INLINE $A88E;
  184.     {$ENDC}
  185. PROCEDURE DrawChar(ch: CharParameter);
  186.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  187.     INLINE $A883;
  188.     {$ENDC}
  189. PROCEDURE DrawString(s: Str255);
  190.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  191.     INLINE $A884;
  192.     {$ENDC}
  193. PROCEDURE DrawText(textBuf: UNIV Ptr; firstByte: INTEGER; byteCount: INTEGER);
  194.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  195.     INLINE $A885;
  196.     {$ENDC}
  197. FUNCTION CharWidth(ch: CharParameter): INTEGER;
  198.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  199.     INLINE $A88D;
  200.     {$ENDC}
  201. FUNCTION StringWidth(s: Str255): INTEGER;
  202.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  203.     INLINE $A88C;
  204.     {$ENDC}
  205. FUNCTION TextWidth(textBuf: UNIV Ptr; firstByte: INTEGER; byteCount: INTEGER): INTEGER;
  206.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  207.     INLINE $A886;
  208.     {$ENDC}
  209. PROCEDURE MeasureText(count: INTEGER; textAddr: UNIV Ptr; charLocs: UNIV Ptr);
  210.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  211.     INLINE $A837;
  212.     {$ENDC}
  213. PROCEDURE GetFontInfo(VAR info: FontInfo);
  214.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  215.     INLINE $A88B;
  216.     {$ENDC}
  217. PROCEDURE CharExtra(extra: Fixed);
  218.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  219.     INLINE $AA23;
  220.     {$ENDC}
  221. PROCEDURE StdText(count: INTEGER; textAddr: UNIV Ptr; numer: Point; denom: Point);
  222.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  223.     INLINE $A882;
  224.     {$ENDC}
  225. FUNCTION StdTxMeas(byteCount: INTEGER; textAddr: UNIV Ptr; VAR numer: Point; VAR denom: Point; VAR info: FontInfo): INTEGER;
  226.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  227.     INLINE $A8ED;
  228.     {$ENDC}
  229.  
  230. {$IFC OLDROUTINENAMES }
  231. FUNCTION NPixel2Char(textBuf: Ptr; textLength: LONGINT; slop: Fixed; pixelWidth: Fixed; VAR leadingEdge: BOOLEAN; VAR widthRemaining: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  232.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  233.     INLINE $2F3C, $8222, $002E, $A8B5;
  234.     {$ENDC}
  235. FUNCTION NChar2Pixel(textBuf: Ptr; textLength: LONGINT; slop: Fixed; offset: LONGINT; direction: INTEGER; styleRunPosition: JustStyleCode; numer: Point; denom: Point): INTEGER;
  236.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  237.     INLINE $2F3C, $821C, $0030, $A8B5;
  238.     {$ENDC}
  239. PROCEDURE NDrawJust(textPtr: Ptr; textLength: LONGINT; slop: Fixed; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  240.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  241.     INLINE $2F3C, $8016, $0032, $A8B5;
  242.     {$ENDC}
  243. PROCEDURE NMeasureJust(textPtr: Ptr; textLength: LONGINT; slop: Fixed; charLocs: Ptr; styleRunPosition: JustStyleCode; numer: Point; denom: Point);
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $2F3C, $801A, $0034, $A8B5;
  246.     {$ENDC}
  247. FUNCTION NPortionText(textPtr: Ptr; textLen: LONGINT; styleRunPosition: JustStyleCode; numer: Point; denom: Point): Fixed;
  248.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  249.     INLINE $2F3C, $8412, $0036, $A8B5;
  250.     {$ENDC}
  251. {$ENDC}  {OLDROUTINENAMES}
  252.  
  253. {$ALIGN RESET}
  254. {$POP}
  255.  
  256. {$SETC UsingIncludes := QuickdrawTextIncludes}
  257.  
  258. {$ENDC} {__QUICKDRAWTEXT__}
  259.  
  260. {$IFC NOT UsingIncludes}
  261.  END.
  262. {$ENDC}
  263.